package solution;

/**
 * @author zhangmin
 * @create 2021-08-09 11:35
 */
public class Solution_5sortandSearch {
    /*===========================================================================================================================
     *合并两个有序数组
     * */
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        int[] temp=new int[m+n];
        int i=0,j=0;
        int index=0;
        while (i<m&&j<n){
            if (nums1[i]<=nums2[j]){
                temp[index]=nums1[i];
                i++;
            } else {
                temp[index]=nums2[j];
                j++;
            }
            index++;
        }
        for (;i<m;i++){
            temp[index++]=nums1[i];
        }
        for (;j<n;j++)
            temp[index++]=nums2[j];

        for (int k = 0; k < m+n; k++) {
            nums1[k]=temp[k];
        }
    }
    /*===========================================================================================================================
     *第一个错误的版本
     * 二分查找
     * */
    boolean isBadVersion(int version){
        return true;
    };
    public int firstBadVersion(int n) {
        int left=1,right=n;
        while (left<right){
            int mid=left+(right-left)/2;
            if (isBadVersion(mid)){
                right=mid;
            }else {
                left=mid+1;
            }
        }
        return left;
    }
    public static void main(String[] args) {
        int[] nums1 = new int[]{4,5,6,0,0,0};
        int[] nums2 = new int[]{1,2,3};
        Solution_5sortandSearch object=new Solution_5sortandSearch();
        object.merge(nums1,3,nums2,3);
        for (int num:nums1) {
            System.out.println(num);
        }
    }
}
